Docker Compose ব্যবহার করে Multi-container Application তৈরি

Latest Technologies - ডকার (Docker) - প্র্যাকটিস প্রোজেক্টস | NCTB BOOK

Docker Compose ব্যবহার করে একটি Multi-container Application তৈরি করা একটি সহজ প্রক্রিয়া। নিচে একটি উদাহরণ দেওয়া হলো যেখানে আমরা একটি সিম্পল Flask ওয়েব অ্যাপ্লিকেশন তৈরি করব, যেটি MySQL ডাটাবেসের সাথে সংযুক্ত থাকবে।

১. পরিবেশ প্রস্তুতি

প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে Docker এবং Docker Compose ইনস্টল করা আছে।

২. প্রকল্প ফোল্ডার তৈরি করা

নতুন একটি ডিরেক্টরি তৈরি করুন এবং সেখানে যান:

mkdir my-flask-app
cd my-flask-app

৩. Flask অ্যাপ্লিকেশন কোড তৈরি করা

৩.১. app.py ফাইল তৈরি করা

app.py নামে একটি ফাইল তৈরি করুন এবং নিচের কোডটি লিখুন:

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:password@db/mydatabase'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))

@app.route('/')
def home():
    return "Hello, Docker World!"

@app.route('/users', methods=['POST'])
def add_user():
    name = request.json['name']
    new_user = User(name=name)
    db.session.add(new_user)
    db.session.commit()
    return jsonify({'message': 'User added!'}), 201

if __name__ == '__main__':
    db.create_all()  # ডাটাবেস তৈরি করুন
    app.run(host='0.0.0.0', port=5000)

৩.২. requirements.txt ফাইল তৈরি করা

requirements.txt নামের একটি ফাইল তৈরি করুন এবং এতে নিচের লাইনগুলি যোগ করুন:

Flask==2.1.1
Flask-SQLAlchemy==2.5.1
PyMySQL==1.0.2

৪. Dockerfile তৈরি করা

Dockerfile নামে একটি নতুন ফাইল তৈরি করুন এবং নিচের কনটেন্টটি যোগ করুন:

# বেস ইমেজ হিসাবে Python ব্যবহার করুন
FROM python:3.9-slim

# কাজের ডিরেক্টরি সেট করুন
WORKDIR /app

# requirements.txt ফাইল কপি করুন এবং নির্ভরতাগুলি ইনস্টল করুন
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# অ্যাপ্লিকেশন কোড কপি করুন
COPY app.py .

# অ্যাপ্লিকেশন চালানোর জন্য কমান্ড নির্ধারণ করুন
CMD ["python", "app.py"]

৫. Docker Compose ফাইল তৈরি করা

docker-compose.yml নামে একটি ফাইল তৈরি করুন এবং নিচের কনটেন্টটি যোগ করুন:

version: '3.8'

services:
  web:
    build: .
    ports:
      - "5000:5000"
    depends_on:
      - db
    environment:
      - FLASK_ENV=development

  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: mydatabase
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

৬. Docker Compose ব্যবহার করে Multi-container Application চালানো

Docker Compose ফাইল তৈরি করার পর, নিচের কমান্ডটি ব্যবহার করে সব সার্ভিস চালান:

docker-compose up

এটি আপনার Flask অ্যাপ্লিকেশন এবং MySQL ডাটাবেস কন্টেইনার চালু করবে।

৭. অ্যাপ্লিকেশন পরীক্ষা করা

অবশেষে, আপনার ব্রাউজারে http://localhost:5000 তে যান। আপনি "Hello, Docker World!" বার্তাটি দেখতে পাবেন।

৮. ডাটাবেসে ব্যবহারকারী যোগ করা

আপনি Postman বা curl ব্যবহার করে /users এ POST অনুরোধ পাঠিয়ে নতুন ব্যবহারকারী যোগ করতে পারেন:

curl -X POST http://localhost:5000/users -H "Content-Type: application/json" -d '{"name": "John Doe"}'

৯. কন্টেইনার বন্ধ করা

কন্টেইনার বন্ধ করার জন্য নিচের কমান্ডটি ব্যবহার করুন:

docker-compose down

সারসংক্ষেপ

এই প্রক্রিয়ায়, আপনি Docker Compose ব্যবহার করে একটি Multi-container Application তৈরি করেছেন, যেখানে একটি Flask ওয়েব অ্যাপ্লিকেশন MySQL ডাটাবেসের সাথে সংযুক্ত। Docker Compose ফাইলের মাধ্যমে সার্ভিস এবং কনফিগারেশন পরিচালনা করা হয়েছে, যা আপনার অ্যাপ্লিকেশন ডেভেলপমেন্ট এবং ডিপ্লয়মেন্ট প্রক্রিয়াকে সহজতর করে।

Content added By
Promotion